package mqueuex

// KqMessage

// 第三方支付回调更改支付状态通知
type ThirdPartPaymentUpdateTradeStateMessage struct {
	PayerTotal     *int64  `json:"payer_total,omitempty"`
	Total          *int64  `json:"total,omitempty"`
	OutTradeNo     *string `json:"out_trade_no,omitempty"`
	TradeState     *string `json:"trade_state,omitempty"`
	TradeStateDesc *string `json:"trade_state_desc,omitempty"`
	TradeType      *string `json:"trade_type,omitempty"`
	TransactionId  *string `json:"transaction_id,omitempty"`
}

type ThirdPartPaymentRefundMessage struct {
	RefundId      *string `json:"refund_id,omitempty"`
	OutRefundNo   *string `json:"out_refund_no,omitempty"`
	TransactionId *string `json:"transaction_id,omitempty"`
	OutTradeNo    *string `json:"out_trade_no,omitempty"`
	Total         *int64  `json:"total,omitempty"`
	Refund        *int64  `json:"refund,omitempty"`
	PayerTotal    *int64  `json:"payer_total,omitempty"`
	PayerRefund   *int64  `json:"payer_refund,omitempty"`
}

type DeferedUpdateTradeStateMessage struct {
	OrderSn *string `json:"orderSn"`
}

type DeferredCreateGorseItemMessage struct {
	Ids         *string `json:"id"`
	ContentType *int32  `json:"type"`
}

type DeferedUnFreezePointCouponMessage struct {
	OrderSn *string `json:"orderSn"`
}

type AttachmentSyncQiniuMessage struct { // ##25.02.10##
	Id        uint64 `json:"id"`        //
	Put       uint32 `json:"put"`       //
	Watermark uint32 `json:"watermark"` //
	Thumbnail uint32 `json:"thumbnail"` //
	Style     string `json:"style"`
	Type      int32  `json:"type"`   //
	TypeId    uint64 `json:"typeId"` //
	Url       string `json:"url"`    //
	Alt       string `json:"Alt"`
}

type ForumReactionMessage struct {
	AuthorId  *uint64 `json:"aid"`
	TopicId   *uint64 `json:"qid"`
	PostId    *uint64 `json:"rid"`
	CommentId *uint64 `json:"cid"`
	UserId    uint64  `json:"uid"`
	Type      string  `json:"type"`
	Status    uint32  `json:"status"`
}

type ShoppingCartSpecialMessage struct { // #24.08.27#
	Quantity  uint32  `json:"qty"`
	PostId    *uint64 `json:"postId"`
	InviterId *uint64 `json:"inviterId"`
}

type DeferredUpdateShoppingCartMessage struct { // ##25.02.14#
	SkuQtyMap map[uint64]ShoppingCartSpecialMessage `json:"skuQtyMap"`
	UserId    *uint64                               `json:"userId"`
	OrderId   *uint64                               `json:"orderId"`
}

type DeferredInquireAIMessage struct { // ##25.02.21#
	UserId         *uint64     `json:"userId"`
	TopicId        *uint64     `json:"topicId"`
	Type           *uint32     `json:"type"`
	Content        *string     `json:"content"`
	AuthorId       *uint64     `json:"authorId"`
	AuthorNickname *string     `json:"authorNickname"`
	AuthorAvatar   *string     `json:"authorAvatar"`
	PerfumeCard    []*CardInfo `json:"card"`
}

type CardInfo struct {
	Uid      *uint64 `json:"uid,omitempty"`
	Id       *uint64 `json:"id,omitempty"`
	Type     *string `json:"type,omitempty"`
	LinkUrl  *string `json:"linkUrl,omitempty"`
	Title    *string `json:"title,omitempty"`
	PicUrl   *string `json:"picUrl,omitempty"`
	Subtitle *string `json:"subtitle,omitempty"`
	Label    *string `json:"label,omitempty"`
	Price    *string `json:"price,omitempty"`
}

type CouponInfo struct {
	TemplateId uint64  `json:"templateId"`
	ActivityId *uint64 `json:"activityId"`
	UserId     uint64  `json:"userId"`
	StartedAt  string  `json:"startedAt"`
	EndedAt    string  `json:"endedAt"`
	Point      *string `json:"point"`
}

type ProductInfo struct {
	UserId      uint64  `json:"userId"`
	ProductId   uint64  `json:"productId"`
	ProductName string  `json:"productName"`
	ProductCode string  `json:"productCode"`
	SkuId       uint64  `json:"skuId"`
	SkuCode     string  `json:"skuCode"`
	Sku         string  `json:"sku"`
	Point       *string `json:"point"`
}

type DistributePointsMessage struct { // ##25.03.10#
	TaskId     *uint64 `json:"taskId"` //
	Points     *string `json:"points"` //
	SourceType *uint32 `json:"sType"`  //
	SourceId   *uint64 `json:"sId"`    //

	Task *string `json:"task"` // deprecated

	UserId  *uint64 `json:"userId"` //
	Coupons *string `json:"coupons"`
	Product *string `json:"product"`
}

type ExchangeCouponMessage struct { // #25.03.04#
	TemplateIds *uint64 `json:"templateIds"`
	UserId      *uint64 `json:"userId"`
	ActivityId  *uint64 `json:"activityId"`
	PerLimit    *uint64 `json:"perLimit"`
	ExpireMode  *uint32 `json:"expireMode"`
	GemPrice    *string `json:"gemPrice"`
}

type SeckillMessage struct {
	Uid uint64 `json:"uid"`
	Vid uint64 `json:"vid"`
}

type UploadShipmentInfoToWeBackendMessage struct { // ##25.02.14#
	TransactionId string `json:"transactionId"`
	TrackingNo    string `json:"trackingNo"`
	ProductName   string `json:"productName"`
	Phone         string `json:"phone"`
	OpenId        string `json:"openId"`
}
